package aiP.A3.AuftragKomponente.DataAccessLayer.Entity;

import aiP.A3.PersistenceService.iEntity;

import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 * User: Hero
 * Date: 22.05.14
 * Time: 13:51
 * To change this template use File | Settings | File Templates.
 */
//@javax.persistence.Table(name = "AI_ANGEBOT", schema = "HR", catalog = "")
@javax.persistence.Table(name = "AI_ANGEBOT", schema = "AIP", catalog = "")
@Entity
public class Angebot implements iEntity {
    private int angebotsnr;
    private double gesamtpreis;
    private Date gueltigAb;
    private Date gueltigBis;
    private int kundenNr;
    private int bauteilNr;
    private int id;


    @javax.persistence.Column(name = "ID")
    @Id
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @javax.persistence.Column(name = "ANGEBOTSNR")
    public int getAngebotsnr() {
        return angebotsnr;
    }

    public void setAngebotsnr(int angebotsnr) {
        this.angebotsnr = angebotsnr;
    }

    @javax.persistence.Column(name = "GESAMTPREIS")
    @Basic
    public double getGesamtpreis() {
        return gesamtpreis;
    }

    public void setGesamtpreis(double gesamtpreis) {
        this.gesamtpreis = gesamtpreis;
    }

    @javax.persistence.Column(name = "GUELTIG_AB")
    @Basic
    public Date getGueltigAb() {
        return gueltigAb;
    }

    public void setGueltigAb(Date gueltigAb) {
        this.gueltigAb = gueltigAb;
    }

    @javax.persistence.Column(name = "GUELTIG_BIS")
    @Basic
    public Date getGueltigBis() {
        return gueltigBis;
    }

    public void setGueltigBis(Date gueltigBis) {
        this.gueltigBis = gueltigBis;
    }

    @javax.persistence.Column(name = "KUNDEN_NR")
    @Basic
    public int getKundenNr() {
        return kundenNr;
    }

    public void setKundenNr(int kundenNr) {
        this.kundenNr = kundenNr;
    }

    @javax.persistence.Column(name = "BAUTEIL_NR")
    @Basic
    public int getBauteilNr() {
        return bauteilNr;
    }

    public void setBauteilNr(int bauteilNr) {
        this.bauteilNr = bauteilNr;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Angebot angebot = (Angebot) o;

        if (angebotsnr != angebot.angebotsnr) return false;
        if (bauteilNr != angebot.bauteilNr) return false;
        if (Double.compare(angebot.gesamtpreis, gesamtpreis) != 0) return false;
        if (id != angebot.id) return false;
        if (kundenNr != angebot.kundenNr) return false;
        if (gueltigAb != null ? !gueltigAb.equals(angebot.gueltigAb) : angebot.gueltigAb != null) return false;
        if (gueltigBis != null ? !gueltigBis.equals(angebot.gueltigBis) : angebot.gueltigBis != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result;
        long temp;
        result = angebotsnr;
        temp = Double.doubleToLongBits(gesamtpreis);
        result = 31 * result + (int) (temp ^ (temp >>> 32));
        result = 31 * result + (gueltigAb != null ? gueltigAb.hashCode() : 0);
        result = 31 * result + (gueltigBis != null ? gueltigBis.hashCode() : 0);
        result = 31 * result + kundenNr;
        result = 31 * result + bauteilNr;
        result = 31 * result + id;
        return result;
    }

    public String toString(){
        return "KundenID: " + getKundenNr() + "Gesamtpreis: " + getGesamtpreis() + " Volumen: [" + getBauteilNr() + " ]";
    }
}
